//== 模型管理-列表页
let modelList = function () {
    /**
     * 初始化列表
     */
    let initTable = function () {
        let options = {
            // 列配置
            columns: [
                {
                    field: 'id',
                    title: '#',
                    sortable: false, // 禁用此列排序
                    width: 40,
                    selector: {class: 'e-checkbox--solid'}
                },
                {
                    field: 'name',
                    title: '名称',
                    sortField: 'arm.name_'
                },
                {
                    field: 'key',
                    title: '标识',
                    sortField: 'arm.key_'
                },
                {
                    field: 'version',
                    title: '版本号',
                    sortField: 'arm.version_',
                    template: function (row, index, datatable) {
                        return '<span class="badge badge-brand badge--inline badge--pill">v' + row.version + '</span>';
                    }
                },
                {
                    field: 'createTime',
                    title: '创建时间',
                    sortField: 'arm.create_time_',
                    sortable: 'desc'
                },
                {
                    field: 'lastUpdateTime',
                    title: '最后更新时间',
                    sortField: 'arm.last_update_time_'
                },
                {
                    field: 'Actions',
                    width: 130,
                    title: '操作',
                    sortable: false,
                    overflow: 'visible',
                    locked: {
                        right: 'md'
                    },
                    template: function (row, index, datatable) {
                        let _btn = '';
                        if (ETool.hasPermissions('activiti:model:save')) {
                            _btn += '<a href="#" onclick="EApp.openPage(\'' + row.name + '\', \'' + ETool.getBaseUrl() + 'edit/' + row.id + '\')" class="' + ETool.ACTIONS_INFO + '" title="编辑">\
                                <i class="la la-edit"></i>\
                            </a>';
                        }
                        if (ETool.hasPermissions('activiti:model:deployment')) {
                            _btn += '<a href="#" onclick="modelList.deploymentProcess(\'' + row.id + '\')" class="' + ETool.ACTIONS_INFO + '" title="部署流程">\
                                <i class="la la-check"></i>\
                            </a>';
                        }
                        if (ETool.hasPermissions('activiti:model:export')) {
                            _btn += '<a href="#" onclick="modelList.exportModel(\'' + row.id + '\')" class="' + ETool.ACTIONS_SUCCESS + '" title="导出">\
                                <i class="la la-download"></i>\
                            </a>';
                        }

                        if (ETool.hasPermissions('activiti:model:delete')) {
                            _btn += '<a href="#" onclick="ETool.deleteById(this, \'' + row.id + '\')" class="' + ETool.ACTIONS_DANGER + '" title="删除">\
                                <i class="la la-trash"></i>\
                            </a>';
                        }
                        return _btn;
                    }
                }

            ]
        };
        modelList.dataTable = ETool.initDataTable(options);
    };

    /**
     * 部署流程
     *
     * @param id {string} 模型id
     */
    let deploymentProcess = function (id) {
        EUtil.ajax({
            url: ETool.getBaseUrl() + 'deployment/process/' + id,
            success: function (res) {
                ETool.successTip(commonTips.success, '流程部署成功');
            }
        })
    };
    /**
     * 导出模型
     *
     * @param id {string} 模型id
     */
    let exportModel = function (id) {
        ETool.downloadFile(ETool.getBaseUrl() + 'export/' + id);
    };

    return {
        //== 初始化页面
        init: function () {
            ETool.setBaseUrl(basePath + '/auth/activiti/model/');
            initTable();
        },
        /**
         * 部署流程
         *
         * @param id {string} 模型id
         */
        deploymentProcess: function (id) {
            deploymentProcess(id);
        },
        /**
         * 导出模型
         *
         * @param id {string} 模型id
         */
        exportModel: function (id) {
            exportModel(id);
        }
    };
}();
/**
 * 当前tab激活时是否需要重新加载数据
 *
 * @return {boolean} true/false
 */
ETab.needSubmitForm = function () {
    return true;
};
//== 初始化
$(document).ready(function () {
    modelList.init();
});